Masala #0590

Xotira 64 MB Vaqt 1000 ms Qiyinchiligi 45 %
3.0 (Baholar 5)
14

  

Qavslar

Qavslar soni nn ta bo'lgan ss satr(qavslar ketma-ketligi) to'g'ri hisoblanadi agar quyidagi ikki shart bajarilsa:

  • ss satrda ochiluvchi va yopiluvchi qavslar soni teng bo'lsa;
  • ss satrning istalgan prefiksida s[0...i](i<n)s[0...i](i<n) ochiluvchi qavslar soni yopiluvchi qavslar sonidan kam bo'lmasa. 

Sizga mm ta qavsdan iborat ss satr beriladi, sizning vazifangiz shunday ri=p+s+qr_i=p+s+q satrni topishdan iboratki, hosil bo'lgan rir_i satrning uzunligi nn ga teng bo'lsin va bu satr to'g'ri ketma-ketlikni tashkil qilsin. Bunday satrlardan jami nechta hosil qilish mumkin ekanligini hisoblang.


Kiruvchi ma'lumotlar:

Kirish faylining dastlabki satrida ikkita n,m(1mn105,mn2000)n,m(1\leq m\leq n\leq 10^5,m-n\leq2000) sonlar mos ravishda, hosil qilnishi kerak bo'lgan satr uzunligi va ss satrdagi qavslar soni. Keyngi satrda ss satr faqatgina '(' va ')' tashkil topgan ketma-ketlik.


Chiquvchi ma'lumotlar:

Yagona qatorda masalaning javobini 109+710^9+7 ga bo'lgandagi qoldiqni chop eting.


Misollar
# input.txt output.txt
1
4 1
(
4
2
4 4
(())
1
3
3 2
((
0
Izoh:

11-testda faqat 44 ta holatda hosil qilish mumkun

1.1. p="("p="(",  q="))"q="))"  p+s+q="(())"p+s+q="(())" 

2.2. p="()"p="()",  q=")"q=")",  p+s+q="()()"p+s+q="()()" 

3.3. p=""p="",  q="())"q="())",  p+s+q="(())"p+s+q="(())" 

4.4. p=""p="",  q=")()"q=")()",  p+s+q="()()"p+s+q="()()" 


22-testda faqatgina 1 ta hosil qilish mumkun

1.1. p=""p="",  q=""q="",  p+s+q="(())"p+s+q="(())" 


33-testda hech bir pp va qq satrlar orqali to'g'ri qavslardan tashkil topgan satrni hosil qilishning iloji yo'q.

Yechimini yuborish
Bu amalni bajarish uchun tizimga kiring, agar profilingiz bo'lmasa istalgan payt ro'yxatdan o'tishingiz mumkin